#ifndef CENA_HPP
#define CENA_HPP
#include "vetor.hpp"
#include "objeto.hpp"
#include "luz.hpp"
#include "raio.hpp"
#include "cor.hpp"
#include <vector>

class Cena {
public:

	Cena(const Cor&);
	Cena(void);
	~Cena(void);

	int objetoProximo(Vetor&,const Raio&);
	bool objetoSegmento(const Raio&,double);
	

	void addObjeto(Objeto*);
	void addLuz(Luz*);
	void setFundo(Cor);
	void setAtenuacao(void);
	void setAtenuacao(double,double,double);
	void unsetAtenuacao(void);

	int getObjetosEnd(void) const;
	int getLuzesEnd(void) const;
	Objeto* getObjeto(int) const;
	Luz* getLuz(int) const;
	Cor getFundo(void) const;
	double getAtenuacao(const double) const;

private:
	vector<Objeto*> objetos;
	vector<Luz*> luzes;
	Cor fundo;
	bool atenuacao;
	double a,b,c; /*Constantes para calculo de atenuacao de distancia*/
};

#endif
